/*
 * @Description: 根据算法绘制的几何图形
 * @Date: 2022-04-06 09:35:47
 * @Author: yeming
 */

import { getLonlatByDistancsAndAzimuth } from './algorithm.js'


/**
 * @desc: 根据传入的中心点，绘制矩形
 * @param {Array} latlng 矩形中心点经纬度
 * @param {Number} width 矩形width
 * @param {Number} height 矩形height
 * 1、角度转换为弧度公式：弧度=角度×(π ÷度180 )
 * 2、弧度转换为角度公式：角度=弧度×（180÷π）
 */
export function createRectangle (latlng, width, height) {
  let distance = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2)) // 计算直角三角形斜边 a^2 + b^2 = c^2
  let cosAlpha = (width / 2) / (distance / 2)
  let arcCosAlpha = Math.acos(cosAlpha) // 弧度
  let alpha = arcCosAlpha * 180 / Math.PI // 角度

  let latlngObj1 = getLonlatByDistancsAndAzimuth(latlng[0], latlng[1], 270 + alpha, distance)
  let latlngObj2 = getLonlatByDistancsAndAzimuth(latlng[0], latlng[1], 90 - alpha, distance)
  let latlngObj3 = getLonlatByDistancsAndAzimuth(latlng[0], latlng[1], 90 + alpha, distance)
  let latlngObj4 = getLonlatByDistancsAndAzimuth(latlng[0], latlng[1], 270 - alpha, distance)

  return [[latlngObj1.lng, latlngObj1.lat], [latlngObj2.lng, latlngObj2.lat], [latlngObj3.lng, latlngObj3.lat], [latlngObj4.lng, latlngObj4.lat]]
}